﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ucntemaxp.DB;

namespace ucntemaxp.Ctr
{
    
    class CtrSale
    {
        private DB.Dm74_1Entities DBCon;
        public CtrSale()
        {
            DBCon = new DB.Dm74_1Entities();
        }

        public List<Sale> findAlleSale()
        {

            List<Sale> sales = DBCon.Sales.Select(Sale => Sale).ToList();
            return sales;
        }

        public void opretSal()
        {
            try
            {
                DBCon.Sales.AddObject(new Sale()
                {
                });
                DBCon.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
        }


        public List<Sæde> findOptaget(int salid)
        {
            List<Sæde> list = new List<Sæde>();
            try
            {
                var optaget = from x in DBCon.Sæde where x.Sædestatus.Equals("Optaget") select x;
                foreach (var s in optaget)
                {
                    list.Add(s);
                }
                return list;
                
            }

            catch (Exception)
            {
                
                throw;
            }
        }

        public void bookSæde(string navn)
        {
            int pl = Convert.ToInt32(navn);
            try
            {
                Sæde s = DBCon.Sæde.First(i => i.Plads == pl);
                s.Sædestatus = "Optaget";
                DBCon.SaveChanges();
            }
            catch (Exception)
            {
                
                throw;
            }
        }

        public List<Sæde> findAlleSæder(int salid)
        {
            List<Sæde> list = new List<Sæde>();

            try 
	        {	        
		        var optaget = from x in DBCon.Sæde where x.Saleid==salid select x;
                foreach(var s in optaget)
                {
                    list.Add(s);
                }
                return list;
                
	        }
	        catch (Exception)
	        {
		
		        throw;
	        }
        }

        public List<Sæde> findAlleSæderTilForestilling(int forestillingsid, int salid)
        {
            List<Sæde> list = new List<Sæde>();

            try
            {
                var optaget = from x in DBCon.Sæde where x.Saleid == salid && x.Forestillingid == forestillingsid select x;
                foreach (var s in optaget)
                {
                    list.Add(s);
                }
                return list;

            }
            catch (Exception)
            {

                throw;
            }
        }

        public List<Sæde> findAlleSæderFrame(int salid)
        {
            List<Sæde> list = new List<Sæde>();

            try
            {
                var optaget = from x in DBCon.Sæde where x.Saleid==salid && x.Sædestatus.Equals("framevalgt") select x;
                foreach (var s in optaget)
                {
                    list.Add(s);
                }
                return list;

            }
            catch (Exception)
            {

                throw;
            }
        }

        public List<Sæde> findAlleSæderFrameReset(int salid)
        {
            List<Sæde> list = new List<Sæde>();

            try
            {
                var optaget = from x in DBCon.Sæde where x.Saleid == salid && x.Sædestatus.Equals("frame") || x.Sædestatus.Equals("framevalgt") select x;
                foreach (var s in optaget)
                {
                    list.Add(s);
                }
                return list;

            }
            catch (Exception)
            {

                throw;
            }
        }

        public void sætOpstilling(int salid, List<int> sæder)
        {
            try
            {
                
                foreach(int sæde in sæder)
                {
                    var optaget = from x in DBCon.Sæde where x.Saleid == salid && x.Plads == sæde select x;
                    optaget.First().Sædestatus = "framevalgt";          
                }
            }
            catch (Exception)
            {
                
                throw;
            }
            DBCon.SaveChanges();
        }

    }
}
